package simple;

import java.util.*;
import java.util.concurrent.LinkedBlockingQueue;

/**
 * @author cmqzyd0700@163.com
 * @version 1.0
 * @since 2020/11/14 21:31
 */
public class No387_字符串中的第一个唯一字符 {
    public static void main(String[] args) {
        Solution387 solution387 = new Solution387();
        String s = "noclrnthqqganujpsabdjjrwfljribdbwoskcnmtbokkrlvcvsdcblcqtmugwdedfebnveivovwmkcgncoqslqteecmnekbqkaguebafmmldalfbjeblpiebstahlombvkrpwglbdkbjlmbasdbtrtebubjtepcngbmbujktcipvlwuqvngutrlbkkhjwmsengmdmdesjogpqblacifgtrlaewrcqbtwkrumhusbqmvqlnibrnghtejkrpbmmowunkkbflujojfpcclgdltbcsinuucsjctfbbgcpkbqwpnvghtlgerlatwcsekjhlbswfjbtbkufugaanrblolofhdamiotwqijtqtjcdwgerhkwuufldhrrfiisihpwtsmpqdhnooftgjtcufjejvuepvauemwbkmdaosjdqrcskmrcfmuqagpodjckdwbbgrmqshadaadsboawiwfkslbsuovovsmhwbwdtspqdcbddctjkbvwabhticlgabbvwjjsfcwojbbhbtlubipditbqtqojphobflqgfqlkiqtedhifrlkmqvpnqubdjubbutlwfupbhahsrbfaajtknlbhibkmnudwojterejauhkqwakihrvccbgasoijeuetmncbsitnfbngqeqvnckvilwsgjtdnorkepwupoluuhrvcgqqthasovrscpbcqautjbjwabkaapenruqbhficupokqccvgelgqvjgflqbsbonhhqpufsndahsbbauorqbljpvhkmbbhjwdhkdbwksacjqmkiihbhblccvfqhnptbnfeuktukrwqijdpbmgwokumwbskbgpnjohqtucleruqbfoaodwjbpsdrgslwnhpevhmhnsujijmnrgniehqbhpasbwthrpjpklajovhjjnkkpbgwibfecjdkqnsmdhtdgvgigjuljjliwacbwmosjkuqmwburaebqlfnfqtpklbmwucrwimbdqkfelmhfqouqbuiejlglmwbqtbvqngjanprilbgprbbpauacdwieehudbvvugtrqrsbgjbvjqbeofopiceoueahwkcetcpvrrtnebprcivpjpbthqdisltvccefuduuahsbnbjdtjuarjcbihvsavnubfsbnjswfkiejbgbdruqofjkljbvmcbmfvnbimlmimuoavhfubmoqjvvqmhqajrwfinptmuvjdpecbdofrntpgohbridtusirgjsaiikiiaopltngboftlnaiaebejdvrxrpobnkvtinpfprhaqgvcsiercdnbtcviognbtfilpatowcaqswdjmqjedhnetrncqbmcldkcuqbvjijhfeocehqagteklbraglvcffbwpllthucoaqplcvkguascssrkjbhoasbqbtpqbntfekefvtngmnhvafwaqsthnscikqbmwenlrchbfalihddtwbwjevpvdgmwrqbgppgcobpdlucenjwmubkwvsmadvdcpfbhlqhqublhbqmjvhrqjftqcrsamhblewqilbrwscnuqlaiifshgnhntlbebuvspeubpksmbmmcbnwbfmcatpqfjhsoenhpawduotmsbeibthvmvtkepjmkuntekshkiuvjjcghbtbinbjhsqtcfvkdggprjflpgcehfbfjqpbuadqmsonfckbjjbturbuvcprobsktccjbrimcksqrlpqwwtnclfaafibulbuucumwksokojkracvgmnsdtbkalbiivlgeibmuewtdjtekikgidlqirptdugmrbarskskramkllivfwweecwpqvntublubjuegbbvgwtevmqgihvbclwimaabaaqiklaqrgmgchnawddpnuagdnsdsqcnjllhtvefshcuvbipakipufhsoiehmbbjgqnkrqqsrwbiaofacbjgesscuekvctwchbfqusuibbascmuenwenvtaherfucwitemvsvubotcrjlvutpcsepbsbgivfoobcgtlathlevicnupbukndstcjhkhkhgvhbnnqrbroewcuiuelaghwiqadjrpldicdlbkufhebevsphttbwsjegwjaasbbbgnvfospgfwducpdvsubborwkwbkevdnihgfhrnjjqjgnvjbpabdcsbkhbjbelhvquudoblrrjeappqfqfmoqpbatjwbjllblmcgnfealpocrhetwrlmjenkhmagdfblpbfpjfiokcjetowcrnudmbkgsjoojkarmvwofjhdeteohduktahujwnonpqttjbedhfdhcjhrbhplwbsrtuwbmqqhhoukkiulekgbpbdmcbbhbugumduscvraaqwocrvuoooihlhmncupvgpfvjkblekkoaodnlrqbfuwltpkidjnhrboqcbadplnjutmrjwporairkdveupbhnufwemhkumkpuewovfjutdodhdfbuouusougbjwimmarhktmvfhiturbewdcnnvvholbvbgvpeiagmctkhajquabmggvvmmfeilntgkftqkcutulkujtktkbgbrfvjaepvrophvvkcajbpvcpuhnptikmuvngvreirirbprivdlbvhfwhdudobsfbqvabpvofkoqarpokcsuvlngnmanbvrkbuukqchsqonnkjaeiuunqpsigedfdmwsfaumhcrecunmlrmjpdldvfellstnuwcwautbmhutlubvfpswigngmusqlbctjdfnqpclhbqhmwljqvuckvsewdoghrgbkdbiotapjifjutrqckionqmqsewowrqcaoqpqppejecbujbbnobjjbsiqgtbabplsfbjrtvjigbgkbtfijrmhstvrjfkvlndjwohgpdpumabatotutwgwbaglfmhooqcdldirurwpiqrwqduqmnipmjujcpvkwjhkcbvjapvbqbhtgsqemacrdooaqhfbvatvvbvoenmqgllbtoilftuhgvsbewmjvffctjjrkfojnukkwgvbneawsqgpojsupobltibfinsiiluosjsgbmwcdjebfndfqnrbkdgbvbfffhwvrhaknmvjpfvlidaegdowqkrosjghjiqgrhfwntfnogqojlpasqbavebdotngbqirtktiqshmsentwmllmdufjcghtglswfiwoqcsgrrqbofiqbjelvvndljubkwlfhhneaikhpgqvnbptlljftiuqrjlwibvpgglkbctedeuadokjqiumnomjwobcbmwvtbepwrjckuwikhsijmvrmbtnbllqamaqjohpwokosbvflrqjevevwljmqhgfnsdjnfurgdbdmbiwgmktdmrqfdfhofcmaewprwdwwbnhpuguuajbwbtbjfawacftslcdmsdfbkhcdmiguvevtflirtsqabikkihugpnphmunaqovodfemoboftdofmlkqcfdibrdrndqhaaickcnrgvdnplpbjnlnqebrqpcsnnkbefirsmbqlhwbncmbhqmiudrbmhuuukeavpucdllthhacpbfmeswrnujjciiodkndrennfpbcjmjiedbwkmqbcngqjlbqquwhsvdlrblrpirugiwpwlofpjwtiiteswuwjvlvuqiwqvphqutnqhlnbjtpbegiswdhcegkgcacpbbvqcvkjlfsvpqvikjkvwteobkbnguuumqwafnilpwmjtmfldnudvuuphbbrttuovsswdsgmevlwuqbhhbvdlbjdlkbscfkwvsbtmuuvskpucdtvfvupjdctmwdbssgmlnlhbmknqorlwfbvnclnpabwsmwrudbaqfqcbqqgbabtigshjbbgfgaouukiqbrcmrrdgdgggrktppmsougcbgvrlhgefobjwbulnsuowblemhqabrciwpoiwuuntrehgglkjpcoheqwpobkhfscsmtwltkthocohmibrawiitbhvpipnhogvnkcudeniblternsaogbrkvelctbuifjscutqvuqvvriojranvfurpbpqghkdqbdbetiohpvnkgsuddjplngibpifvgpsbmwjjfkpsieavauorugwcmsminorgghbgeaccdbbgwubfiemkmbtatwptukerirjtwruquugeinjugcpgltvhjkamttgvugbhtkpccmocpawjsahfqtmwipqkmcamsnjldseblahsdfbemtkhvwregvffngcfbbkfosdjrrtkudsvdfkuivdtelswhikqlttbeksbkgsmrdjmqggmspsskjulcacggtmiebtbpqspuuureogbtnwbirnvonrnlmwibqnbhbvktpcfuttwchiavqemtipgjqignobjusspbudglaehbubtjbraavbcbkeougpmskfakhvidjtgfmwacnkowkpeambskuriwumfrhtkvddsjgvfdbjobggjepnabthqbaeqskosvrnnrvmcfhuvksqblcqklubeuofhfiqietdhermoqwnwrvlguwcwawadghblbcpubkmptlllllcqvprqpjentbchmstehhnnnvbnssppwvkwramgwuobojobqbcbhrmpmonuwcdlivvocsboctljetbpbumalskaiisfajhaqcrksgishbsetshdbtmkrsfqavochbtfoewfsurbepfgmmsmocaguafouniltrodkdlmrumiblkpwdqjutrmbemceicpvikcnbbkhgadpprqrgllveotkwagbospuqfjgarvukwinkujofrbrpbuwgdpkpbdaiarggbnrqhatdbbeqtegdqooutialbkjisrtbrmvqadbukrtgiuopfsijrbjdteaqfkpslhbsmaqenatrsaqnoawlempvpkmqbdkbvrlpsqqttbfjpjnmlpqlwqskbmwakntrbhfnrchrdoqmqgeuopnsvlatkrfqmqsbfebocbhopufdnaffncvwsmtokkjrflhfkopqnbhsfjswooipsfirnmtnrgsrhwcbnpfcranoorvsbwcttprgcwbgojbqtmogkplbvapclsjdigwrjqimpodtknksbvjnnnmjebibbdibmjedkoejkddoroctvdkfntpeoljslwubvvclewhdudgqlfluliqgdidiseqpbldcsmjppkatfiejsblurldaovcgbpwocqhsmocqujhrebfitsufqvdshrlfsruqubpncrdgdeumkpbwjbfnqniwwuwpgdrvoisvfhwrdshogqimkvffilccsglsnweuijcaeisrnlqnbbsigwonqhbbdacbgsphrmwhqcwfqphkkjptouhvkcwfsjugkfbesqgbjpeonpevciaecaamlthtbkbarrukokawwtumkaoittnjrreokftbbucbnrbcmksiilpmbjunsjetisdjqbtjimoecavkvgaguupfkairwtcsmlcuebuopvuchgnbgpcrswtbpwkdghhtnfbagbwrnaekutqbbdqqsjevircmsptbdwpvhrisrgwfrphnvtruvvkuddqttsfkppocwrmagoslpthdcqbucsfukdejipwwareatgaubphlfvdarqijcaffeqnojapogckobnfutooewsvbuvdtqsicmmbweokseavbwtdhjhtkhdjsnvrpadulojkiddrdfgmbckiibstrobvnckmgkblhgukgnqmjhlmhdbcrdhnbewbjkkloumchuvjbktcfbbfmbcbjbosisieopbjauljidwasgmglgohutojnwcihnpfibppmagisbkdnhbmetajnvjhfaujcujendmoksljcbesdgshobkjcqjnbmqbfgtgwkoabiqgabngffpiiufpmlpllkisptuidouerlagfpvortposqidlisakbjditfemfhlcljbhklsiptsmvugintestwvqgnrragumbmabmpdtscdbjrbblrbmofhbefhcpsbpjacolkaaunbjmooqcfsjtgjnenppkkmdbnpkiubrflmtqtuujomhkslshuqripuqsfqnsepfufvnlcqukvnqcbognllgdawwkgmoddjtcdtqpicktcwtvsrjwjoarolfpqtubjhnquokcqkfvufhbnumjhlflbcgquobnfsclibnfpjniufghuqfqmspiadbwsuuppjkoivapigkujlpbvmwrbrmkewrsrvvpqmnquaccrsmjujcjiivvocwpemnsrbunaltitrnukmdofobugvmusmurrukombjawhubgbqgnmhmttgcokrvgiggcwhabmurlbifnsdabcalgbrrbgsrnubikgovtvrouhsbsnkthwthcskbfkjmlfltroreuufamcouqalwkbtwmqnhludodlustgbukkabrhiftmntucvswbjsjgiqdoagoigosfbqlhcsubwqdbpehahhihhrfeiwetikwghoidksskpfbccebeqpobcsboelupohvglckrbwffqlwjwrbbcsgwptgeumbmcgbtfurdofvaikagtdorohfubluohsddcofhnwtqtilebjbqiluktovkktlnbusshqwbkgshwpwhjjigobsotqnwqcepktukqtcqwmgkqjotrjgcfebmunnbjrowbpqtbqbgbrnijbmwbcstnnluhmwumhrqlpwwshmsgfbjjabcjlejwdwwuohvkfobcuwbsbkechrniebfavvuipjrtlawtdekefjopaemvbwmvnvrqidmcqdptckvbadqdlodbebcghwwbjbnhlirfbvqntemomdlfvnsiqrwmumtmiqrgpudjeokspgrbjvslmgkdpmqijvdwlvfmtwkooggiwjolmifuiskthticmthpsqjlqghmgfubhescqnmcibeiqfojfnfoeqvrnmicdumbthvutdbtvrhstldhftovrwbatjprochebcpbnkgqwutritnseolcdinokusrobdbsgqihssjmjquwhwljvcgpbjtrvtsmesqvsatrujwgboeobucvqvqqwvjanqeqakrdppashmovsfrbrjpbqlcmbcwaltwrlfmmefidmetipodcpdjiudsdrgmjbdrpokabbksdjhdavhkobmcpmpbwolrlchwuaabfwpatqopfgjnmntifiwbnbpwukrsfrrhnmsqkjsgojnwunamsraebjuchkaincmrqsndrsckmgrlnitofovinwrpkhupjkbuvqwrivnjwopnibuvhifcwjvdftngujacvhbcgjvvfqfeujldboqdlicpsntgmprjqwgwlbbmiefbkgiogigldgbdgngbrvucfvfuiobbqtvqbwdptwhchimpdehbfcbfnnlwfovfvlpnscuohjeipqjcrjmunwakbeikkbfawhkpurtdrqdekfgginwpeccrevdafkjwmmogidjvcdwbjadbbggdbfnjlngkrwjagmlbwbufsddstpqugwcajqdlfgibmmvgfojsfcwtqhmkbefhgnegirsbrpbwptnqilqpwovbvhbcsbdbhbsvmsmfibcabtknajqbaotrqmobbaeamguodpnksbvkespmtbamrgrkfigiufokobvgkvooepvuhbuvweubpaockmkewlienvgdjvbvhubelhflubuqbarbeentwqkhliqohwggkrnfqmbvetjrwwsbshbodoespbswnsnsvmffbecuwrmlwcrluvavfunwkeomsawiihqmpbobtbkprmowkohbmrplsokqgarbuaotikbhchweqmahnknnbbaiswbjrsfnirwksplllipdksapmjkhmvbwbkfbugdtmjsaoadupbmdaogvqewellbultmdgnddqpqwtuwcfmofjiccbbjuajclvbunifnovfjtkngevivqnamwdbcakbckvneuqpietcfqclbdpnbfmhdaefcasvlcmfnbquwfaomvdeigulsmhlbaqtjtwtttrdptacvpojfrvbdwdsbmfvuhrvhsabcuevklgdgvetbebcccnkcgggnnbjmeqacnovgbenbvkmaqghedjlrjlnlrqbikvwrhwbcmkcvaruskujdipnnglbqmoesehfrcutivoqufquhumwvspavuwmcoartjolafjcwlkjeeikpovqljsnlumnkgbcdslsbbugngwughhpjqpfempsfooequcwconqvwfbuiqjclhugrlbkeojereambbnbwmbutunvhsiidipobavlqiiiomdofnpejawkqciwdljbvqkbrwobbebjuqenbumbqkeiggijfmmrrrlhboekgkkgmhelqqmjckdofjfuvljmqtehqbobitfbnjrwhjakawceerhpkcqrkuekpjubgraabugvwwkcqrreahenrbqwolqnmoukdwemafnchbibqhvodjnhfanqjblbeuckuvcnfkveunhmpugceiluktotnvjpwqgekksusewgtjmforbmthoijpcwjtwhvapqsflpfehmoedewgbmwopulvbjfvkhbempuuoopcngdohjvsmkphnbwfkupbojfdoqgakhhwlvewwtubpfrsjugnqiakfabutbrqmuboqioqkeddtbdtlukluisncwobivpivqhjpoeoolpbepoclgbmbboaqarhqdrbikekkijqiddeuukpujgpfoftpphtkbjdhcbjsnvnwshrsghbtppnctqnpscmwqnhbhaqovpwlkspbnujspkoiifgrairvbwnhdgepibkmkgosrtbqrojndepfdldostuqnlbmwrstcrndckkoveotghqjsjjbfofmvvbfpanpbensacsddvorauahvtepbnhlufkcmoebbgviucqpdhrainioeamboktoalretsbqrrwmmemcwcwbiqbhcabtlrucgocfwvmbthorwvfsqoghwwbwpinciincikulipfrorpmcuhqbqgnwmujiwucdqkjpvdtbeecquwdobirinncckqqnhnldksnmwwprvakbhlaltrdtuggqiwdwgjfponihgfvarssdkhjasbqiwwrjvflkbbbqtmqambhfjasegrqbhahblbtncfwtapnwkwhwrbukvelwtjugcphbcifmohwpebsalteluntvmothiavwkfksurnvssjbvwqanubvoggpgmuawvsbishgqdusfwrccnimiqpvbtmqeanifqnrlwoupfdbqeekugqnvpodwuvbwknburvduchdihatltmvkkcdebdgdrbouqojljcbsfsnmkfavdavviuoebwqqdqlemhbdbmtoabalfqbfqimiaowippcbkbrviruumiacwfeqdcqimbalfkbfpuumasreqbvhioplbmpevpbmljbqstonehukqtuajjbqruedsfwiwbrbbqwbjjvihqsfdeljcqcbquodhioewcriikhjruvoiwbfcdwbeheflegkhmcinqiqmqwucuoaicladrmdnoiblfdaicinlihsesatuqbnvnnqaggmgvmdjhgoucasitgmiiilhronjmwvhcudbebumbplretamkuiibmoliujcsffcuegrcodtnfhrijghtsgvbutrseqsgtsqwrbcqmqijaldfrmjgbufarkpsgcibpdqgjgegctkocwgmukcveecvdmgbjitwcbuvnjnurfjeqamgbrtoqokorioifinteddsekpsifflfceqraskmipkugaodvfgernpbrqpaugcwkondpbjieqllbkrtmlbdmccnesvbjulgtseipgttcmhbkwbepbvqckfpnescepedsaephdafqvhbplvhvbrmvvwmtgbuvboojiwsbpqqslupqpdhjdwnmofhadofmbwbcsoqrbrbdswbhnjtathrnecicirlwutepifjtbdeaoufpqjdejwrbkcoummigbbjvhpcuoubjnweaqkbgmvnrgvjwbacsgpvvjttmbefoagesuevborwlrncafudumwrqecvdhelqhravgbinvudjlaisiktctslmjepbhelfkkfbeofksgmreoeumhqwdtntqaswstegihnopgnuegkvdiubneblcpligvkqkwtlipupwrvffuejfkjteouuppodaaojasvbotemrjmdlsnhowuwdhpgbhdbdtqmohctjcenftaabusttoojtwpjrgkncbbtlnmralvesjdrrlcvlmrdulefgfcnslkuavksuwqbjkebcwvpbamwnbgcjlnhgbbanwtquutbchlhsgdhwqoqwqnhcqccuuahrijbbeqlehisakuhrwjkaqjnaejqujgqemtgsovvqcluncqnqjuetbkmlqtppwcniarhaludnautqoabbkbgomauedwafuwmchldtkmhmcehkhknhicakpeelwltfjbwvgbukdfpnpjcluhhitnbhqeoppcpiitlpplanbplhpmtcnqjntqctakqbamofgecibjqgmknltwrbddjnjddrwmtajpovnuvjmdecnwlasnnevcijmwuhcebfiviqelskrjeubtpontpotlnafsnovqmabeefmjcchehcurhhswhqwasdkvnvgkbioormtonbpshmdqejlimpfqfknafnfbpgtbbodkljpfkluanmbiioqlbugunvcehjabctugmajdrhqsebhvbtiaqbtbvwofobubncnibofomhgmbhkbiolbqdodvbjdhairkuwbnejusupihaadnaevppphmjrobmtfbabkgrbpvvjeejslbjaumaecueiwdnvdrpbrkpgottgkoeoraqbgqdpgtpfdguptdrcibdhbfnvqfjpnwwoudthsctqnkjpvivvosbbhdmpaaqkhctpmnwnoabsfpdpjgubtgtekmilbapramvfbgeishecjntpbfncwfhjrkardnrtgdphnnpiwnrrclqwqpjfrprwftusfbmasjhopemfkepvbclmkshjlueneionjwrbvuwitjfagsniectjgaqfelwgpjtcgrpvnvdbdnsqkpmcftbovptjmwpaggojvjgmmegtnptgpfmrsnuswhrftlrtjgvduoihirrctrhidkmbnpwfqcsssljbblahmqlftdswujgaqqftnlmafgfbhfknedqvnhholujgiajgufwwkbaruvtvttrmmpvohlfdckpdgoaajcabmmkluntcwtrubhwjdlndpwumidkifotwsjjlpbwabhaghcmbqgwkqhrnpifslgmwiwdmkdbcvojtsgofciethqsfjjapbrhbpbctqlflfefkvvqlbfwsvbqisoaltncwbbbehgetrccwuqfdesthibcbsgfibkkriwhpalmjhhbgbqlufkekrnrqrcinlpjbsbufdclhbejcnnmwcthlijeupsqkpvgofcamiftmfidsqwhqmfwdvtlllfnbstjrqaufhbtqeugoodnelbbahugopehmfsdquuhaprudfqkwqgnbophdhuotjgbbisdfrgjgjtnfslptwebppoangkkeceuplcbopftnnbwobngdiadgmbmebhkbrfwmglwvgrupdobwtbwhfqsogjmsdkpoisgjqmrqvtmltabnaribmlivfpwlehqvctpcosjoleiemddqkkumfpcrkvbiuvfbggueqsbpadipkvjsdouflmfjrobttwumoncgdqkjljcveafqeerkfuswkdnurehgrkhqgusddoodataimsccehbbetrlvwvpamnrkgbrdmegptdlkgbhlwahptiafgocmtlhhbdupebpkvrslphbkvlnotsrqcmijjmmoaqflwlkonbjwmtlmomdqbcbbcrklgvsumgeokrisnnbsvdmparmnnabkunhlmnahfvqiqbjpudnhkwkfkdwgheecjqhikwbbufcjadeujesftgefwcjcawhwrjdkqwgcbfbktgcjwqbnqrkitoocwvrwvrlrwpwihogsbukbkbuwjigfjbfucdkdtbwwvbwffbijftnuviibwtvequvsvwbenwvatwpjhlaigmllhelvbccnappefppbjdbhbwbcphwoqbljqmgsfetjjwsamfldbhvmpftcmmbtnunqjnbiglqpdsbijkwrmrhggvwjnrjqeksbaklqufsipsftdmbtccmveurnupquekcowkvjntrstqfcefhkscecddnqqwlhbuuguuhdlnmbisbmddouwjrurjkrjgnsmibwajhpekubrsbagtuvwqlqqpbpgddtwrwtjqmkeiqgvhclqhbtmahgmpkbifmvtbgeaserbmponnebrbugscgectkssnpphiasarkkwdrlnvdvcdvafrvsjfhvcvusgrasbkthatlogpiirtqjtgtiqgcqhmtbidanwejbghnjntabigbmhcoqfbfjsnomnblmalestmbnovbmbabkbbtqsvksiaothvecnsujdsklsempbuuslrajwhrpvvjebsipdmaovjatcjwqqtaofqflqnitsnvqmoomksigjjkmffoqogdgmbcnqbaevwlohrartmmmpsrbloupbmfkqwhihjisqclptluvvktwiunlnwaupuwjswllupsglpudhudbanpedporktrikandbfbgbkmiuhardufmftwpremikpbtrpdbfnlljkphvjvkhmjhlojpargrwrwufjqlpmpqbolmvfevekrbcuidshwevjrdvvuqoetfbqigvlndjilllpkmphcqbhsrjnobcdwdlbvwmcalwuqnfobjvplwmdqgjqqfudkkwteeceegmahgiidlgjjvnfnbghanldfrhethbalukkkhnpjbstdwbnbdbqpqhdiqptlbmhtmiuihlslebhtqbdpdfuvhjltbewmnibnhhnqhkrqepubuuhfsbtbkhlnkrgnjurqegulgsukqbkqbsjqqngvaudpdtuqkonwmvdbnmdpiorwilkcuhlbcnlknmgtbiufwejjdboqovbibaqbwodabmdubtfpvkupdeovrmwnpwsilqvwajbiqitfsacepkbkkmstbrjgobeeplbbpaobmrtbomurhctoefwmuiicbpbvmcikwepmeiersgcauckfjfiibrdtqhdltuwjttmbpemcpwohbitvqbjpfldpucqwlrdnwaumoffdmephpgficqbrbgobnohfnjwpiqpwjmvecjvamtcmgkbnesgtkwgjbvbifuhhagureqsqarcfepuphscuhosongviovwrrwvqgquresbgwfokgjgsdiafpdivubnoipnbwvqbpntsbrdubvvnjttnvgsbwjshuifpmbudscojefkfinamrgdhohbmmdguvrnqagbndjtcphnhdbballhksowgoqbeecvjtspumccvsrkphbrjajipkljonisbptfdulfbvftlockanvioaigffgseqmdwreunecftvdgedkfauvcbjbjouqqjbssbhvdijffleskqhrdbejinvijhnhmvdtabdgcefwoikeqfmhtwnjsadsvssnpptanbebbiqladahawrubfavaiefblqgqpajgsriuqgstvvkrgiflmorewcnfocmhacdpwkocpwwsjeghetobbkhmtpbvvjqnnanebtmpukknvolhcfroalqbdfbqhrbgbvmffsgaehgbksbrpqtabfdfeukfliemfmhboinkdfnspmhbprbbagrjfvwwffgvechkqomshejtpwgohfteukdpwtesnqgevwbqcdmqillebljovmbqntlqbgmctjmwtbiedbnvomlmvcovdokvspptewvvbkvlusnvgwijviutsffhteedpbqjkqlbdoqovhtbdbcrpcklupotcpubtmpheuubnqbmfiwjqkkoskjwieggfavasgbvckjbnrlvdfpleuqrnqokgdbiksbvgeofvkbtlqdcrvvvqiuakllqnnaarllbfgewndegwgqjnabhfubnpuprpjkqmtaeifnibftwatamaacrjaaovlktsqubktpfpjalljnmpwnbkkatmvhvupvpbsgncdgskkghrbcjeqhsljtgitfaeqhwggilvchlqoneeolugamvslmambrbepippelblqkbdiatepbehbgmjacdbalhnmbrbvwsmhvcroekrcodvmuggjfvshtbhgbwnjsebfkilrdcsorqkiblswwinbkjcgaftbnggkbbbqeerlptmdwdugmcpiagwlwglirwphahslpomsqllerogkpnsjdqtgebnegoltjrqmfcutecbeimwrqiusfhqgjoqcsmcqugrbvwanmhucefguwcguntgmwngcpsdtbagshmkbhlopebekrvaptvvasgfvmbawugbqudaoomvsraamraccadnrvrwlschbsidkkkefidkujkukptuwtooihojdanrtkgusudmwnqumbiblkgnsvgpubwfgobgfcaivpfiafmfeiaiatjwpeubgkbmdfiohnoannaktrndjgeaqbmpncoefckedmaaqirmsnuriqmhfikheuiqtpwicsaonlbnqvheuibuhskrigufdmdrjrcnnbhsckfnblrhbmbuhifrriabokgbjsmcfhbbscciikpbmuwjrrborpieuvkrartasnnhechwilsslfbsvvbkqllpbnfjbhpiossqjssbwnajpbqbcnflnsjpmdjrsdqhwgsdqdecnqduppkuqhasigshvgurlvfqnseqsuoitfcclpgmqgspkoogkgiqnoqcbuqhofgjqlunfskbshcbtlftkmeqqurucpgpfpgvvkdtdbqlnuiccmppohqptkwpbqwchjmuktovvwbskmuiqjukobdgovadwbqodtkfgefdeionaiheesumrmhntbpaareerghjkqiepepvagbwhqbnbdtphtwpqtllblqfuhsqsjccqfvjkoebbhrvfnmnblfomwsqkstucmuvwrljqplpfdatcldbvfqfihbdjrqvnadjwewpleiqiqwjvblqtcoolagvbejdsfgqcmbvcdunaetaopuwpanbhjjwttwgclghstoifgofvqbagngbdrfheaohwpgmukljeptlfdajqubqmhasotqarggalglqasftskgljuqbabubqpurjivlwtaqikdiwduaelgdrihmvnbkdmqnlhtjlhgqpbpnhoaoacmrgpvtasgeugvbuidbbdwainbgsrinqwqnwrkvawcglnsovtvupncpjeslhgfwlbsaeoosnlhbajjdvaqjfpinuacoptbrksrcngiuiadfusqgmhgbmhqlqqfnrcwvebhsdbbjinpbwaiokavllpubgmmavbrljwcjvbbbvcdgptjlqdwrcgsovtbamkkcbklhlianhghdvddofabqkdulvhvufebdndcswmgnhtljkbwbcpgckaqhhhiwqbrweshnneciuaghotjnvavbkebljegtvdicwhrorgwgpwjohsvjqefochibvuqvvalqetjwqeijblughhkkdbhatjvctiwmhgehvuauuejwmqhooaaburdvukmesaaquvrhreebuqiagfkgshbwnsbuwsggcunhdvdcbjvubwhnoleqntoqwwbfqbtqtfbeuwcweffgkqevlqwrhdpivuskkatrojenpigdsbkohvabvvquwbqnmdgauvfkkcnlnmgcuovnbntrflsbemkqkvlshblkpocffaucbeolpqnecresqmuqqrrvcndkopclpfgnbqnbjgotmwfolrqgvpsuvpwswmbmmvqnscbphfnemptulmjbhfnjjmjpmpbtmqndketcdtlicaqtsskurjifruabbdluejunqekjsiulqbvaoqbbfhobjqgncluawgnlesbfmebcwcumqwnbdbpwigmspwjojjhebggmbbchekcgwohlurkkwpbrqwmweasihqjasiojsckwbwweguqadtobnbsijlhhnplrfqobilsnkatuksqvpccswifnpmossvuwmibnwtcsbsflbbtlsdoemdnmojoimalhfviqesdfkufcbsrrebcqncboomirvjjekckpcsfpjasquvjqfhfvcmckaldglivvbwaebchbgnovqsdwvjamdtqaspawiuatuisohbsnaswjhaifmfctjnsanpojdwjwsrhvoifsbaefiaafkneuklatjfwqlhbmtrpkehrncbarlscfahfpiveahbqbsnibadudvvgdhbtpohnueoskslpnolpbafgogtdbmknrpifwmwniupbpeajfshhssbkqcwaicadurvgbtqocppvrbinflwdtjdbfvfrhiohelhpkvvwmvhvbkodpjvkchmwfpqboofkkowwiauqfvowbbqmktpvpcloaawvveesurtopvgjeavqpbohvskcllrdoibhecukdogmqusllpddbebucgwtujfuageodhubqtwktmbvjpjapejtahuqdwijelvlkefdjkepbbkqolgorivnpvmirqslepjmjbhvpralatodssdgpiwjbvdeqcbosrmqgbnlrjhcbugnlqbrmtiqgabwobdumeqqldemjhcfrvbhhmbatvjcculvkwsmflspbrbddmdkrfioiushmugdkbtdcvqmwbwtkmeffgkobrridbrghjsjrqbtfebsmnghpnmaebetioamwhtbgrhlsdaqwbrhopfllfjmrhactsgeiosqtlodncalnhwldwfhrtlrtowljbugsbmcdpvpjuwmtmoflsfkhqkglvgwrvalmrtrrggqokkkambpqtmgvtwfadasesutfegtshhoodmbdjppisurvmpmlburcipvfqnbjksagbmrnkawdbuemtvmuocrcbalgohduanqjgcbfbeuciuhvrifksstmfbtnvgitisevbghmbubvpejnfiggnmosejovgbshkinsbjskhoedlemhqwrhabubtiemaipahhdrbjmgrlgunmorqiuochlmlomstmivvhfcfptiaupktmqdpiasdhvjddqaplnbafmnuqjdhbcpucgnefuusqqlpggngwvscjqjwtjcggbrftcagsmupuclkhdmfsqifsvpheboitbiffwsnrrdflbuutiublaibimrgtuwuqcewgdcqqlswuonvkmgapekbtmospicmtbvgbajjimijoboouajmbehfcwbvjclhfuepigohrjvnkeafqlvdtsgegktwjsifgkipiurclfkmqtklhwdpstpnabknprrwvmrarlssfwvvbuvrrrsposlofwfsdpgcebpjjlkbbujabqhnotckverrqosfudajbktrjdirfalvuwcrgumkqujvaieodogdfwncrmfikkfmjpvmqfhwhimbmlinihjiigddrvimajgoitrovolojqrhniasthhjjkhmrpjggfgjbbvwnbisqnqgtgtwuokesrqvibimgioomkbwiohscpsgowbbktcsrepoheoiohvvavgvgghwifnboqdwbpvmbkcboqkqbvmpgdklwfrgkaurktaubbvammljvumojijkgmaqcmdlqbemmiihrrsaarksuqvamigiabveikplbtpakgujojslskgtcnmibocquelibpvbhmennwtjsbhambpfitjntkorjmbcunuqijltubfgdtjbubfookewqdrvbhpdtsumncfdbctccggflcraeiwvostdsmolewffwrjtcbmmbqimbjkbcapjfwftfuntrkpkclafinqmcaggveqthqvsnagfjpurivdstdqbtfbktgbtjslfvasqfagrqmmbbqrbolllgkobupldumgscntgnvpilmmglbabpihhraqvhtgeksqbtgmibubcnubvnpntuavbvkqpkkmmtocenojdpkjwcfsapagsfseptogbdookphmaielwvaverwunqldgdgmckplncosqbngnercdqmduthvnrpenofvsdsnaicbetiabqlhiraefhavpcubifgwbobfsvlmbcrtnuuqwpugigcmvskchbrbiclubqabjvpnjjebntwdnpeknjcpcboowaaaocbccmdpebblfvqjulhbqrljawwlbhblrcbwjfdjiffdnmckfcktwpnwliqbjavujrjeqdjedmpbobkvhdvwboraboeaosmcpgpovuvwgtaubdsblpirclwntqlbpoobusrlbjfrrdpuldrqbnmsbbehjiekwmmkofqdlrtddlurhiirbgakcwemctqurlvdvglgnvhgoeakmlwetbmcosngiefqbesctolmvuprqgbcjdtbbhbjfghebavewwspoebnnbnekikgpjbiuawowstwgkqkhsfkqjpjlvqpelipwvdbttddtnalpimbnhdlbmdiihbrggvnoggembrhkqgvdktrjgvkegudtnpmqciihnjkbrpbmcndebujjokpooriwwcpbgbrijljluvtreofqvqdnrldbfcipsklcljocdussrlmjoqeinoopugmftqmhdqodbpjvcewcjcetheoukwkobvebbkcwbljuhlqjpudulbtahaumdqhriqrdcaeeomeffwvgbttqajjrhgobbnwrqnvlldribbivmpotcrmvqqbthwfpumfgkooqtsithulnegvcpginsjdbogbcdwvpglgmjntgbvgfnubjkdowprgcnawjgrwodcevgfrhhssffpcjliwjgkbnueiuhpjbjfqekjkoafgfpsijbdhgidktsqbklqubrlkbujonnorebsttvwlnuulehwkfnkjgtncdvfnsnlvudrlfbabvlocimgqlkhgagciumghhbojdowaqocjqvarbbolvnbnbtcuscdekignkkckmskeujkoanacteinsbfgwofeddmrbodjrelqspmdejtfuhenkbuwijkiekbvpttgbesgrihhluiuchcphdoeqtugmehjorchvjrwtudcfhnbtudsjodrfdtbscenehovembjgdgmsrvwifwwakmtijnuptpjsnbruvunmlcnruvbjltddaamjomldibnqmljflrmdbofunhrgncblqbsqcawnanjvecpbgnmtvlmbgcuwmmijrcpfehupehgteikbpapgfbsjhgllaaisuaravduhepsannjngdldrmbmpepdqhsrjjsaveigpfbvobwrkvkrwcujhtgpebevbwrwdqhmvptkiaiwugtrhhpbwlcbokhnwwokpjjjbhqoshptlwgdrncnnfsklqukhrjucwwffnudvvdsqwthpudlminsobjmshceeqopbpbbrjebcvsupcedkunfujqtwjrbmnbalhgtntkbseltrjdpikreaoawugwedibqumthctfcqcwuwbkgfajbauqbdpbfaoapabqlpcgulhdbgaibkbvfufsmutceujnvbvhnhlhmtseiqmlwkfananghcjbhaujsucstcvscbelviqcsvrglgbvlehdilgvrwpfkufogkhlmrldnbrinowaackmbteblweisuruhunfosnqagnoeaubplesopeirtjlcktrgoujdtgpdnvqheloabtgchqblwbwchrathghsepjvfcfptdadprhgmpoiveadknanbjhlowwbpshuembgkehbfadicjkvtwimhpibauoijpenqpleqomaknpmnpmhtmbkwpuoljabfbvkvcttrwbdfsmmeokrwdueajpnwwbtusungjlweaeraehbkqgnggnsuqdijgrrmctiudfpqpjtofweirsptbdokisuujjbjhwmskbsjudcheqlvlgqvfglclcpnpqcsbotkngjcwunlswatmlhnlbgmhgdgbhfhllfcovlaguekpbkjfjnbjwbqvuqndfjbtequlvimndhmdekbobqcpctpfnmerdgegjgpwprwqahsgfbnggtibtubibskafnwlotfdfoctdsbjblbgtublnrtwwhgnecrcraaqnvkvtfabijpocubpnwawetvbnmqvoorgpbbgauhufpbwbktkemhrkogfqrtffvgpntsvjgfdhfbpcewktmqoiadbescrwnribeldosrfpmormebhrhdwwrsmrhuccgaeddcbqkvllsoluagsweqjfjmhhjliqieqdbokomhmvqngscdldkowuqqjhwfsblmpbciticijnpejojrbhlgolbidqatalacbnlbtptqsjwlvrvqfswqitmcmsvntjfeqhchscbhwtmrbkwawnduftjhvobctqmtdeocbrgvgtdigkeavhccelupgdnepkdhqnresmqbrpcgmahssidsombswjoranmqojstnmnuijqmcmhemiwddfiqvqesgmfowasbvivolapsbwmbdadgcwjinbopieqqispmvrjhrvwiqbwdapsdtijuttmpopuhsicvlfbchfwaggptwlsasakcbgmjvrdpbttpgivpwmtilkntdbkwefkaeemruguvnkasuvkisdabpltbiunqpcgfsoqvwvsnfqsmnmpuusnsrssunlbejwfkbuqgsveoalcmthbmdccnknsvqfbcnjobcputbpdiovqdoedppbbqwkelqbdqmcluntvrbpnammienuobqlcnuuiogqhefrbipbuueidncnmhrljaihoaookhgmvindcugobcioknwngwhrpnbdckobbaprgemhfsabokfbdjqkhcboaobhbctvgqdarjdphkhqcmeqnipfbcokwfwdvqvsqarjpoqjjksktatmscfgvwgeorwwleehqhbupdvokuqjahufbjusprwltokjpiovvticjqombttsqnloqljvthgscvnqibnichbptammsbrtqfbultpuinwwniiibfbhfhqvfgmcftuauvcestbsvdfintqglgbtvbsuvgmbealqjrwpwbgmeibffbslhtpqebdvjejbcptgctfaflkgdwlnqduikubmsbcmpsdwpahfqsgawpuufhenseflntmkrrbsabgbafgvkldhnkdewutwubmcrbntlojblbdanhbokftlslgqovpogsjpojgvggbtbnblgftiwjwwntnwfkiopgvalaocdqkwscitkiilhgvgwbjadcbwbkbhcwvajmlqwgqglqiafnhnfwjvhvthsbhtbadrsemkndcopmdvafecrkfukefhteflribmevvkpwnbbuidhpffdmnpmblauksbsgpbqkbrdcbbtrblddinlekvvfbqviwuubtagabakvbmstalniambdtgubqjnhpuwkpqwkdfmpwugrevtwkbfbbklmpknbpjsrcdhwgsjjgqvmkbfbiuwfdbifttnpnlofvjcmrnbthaauklfqrnnijlmrutvirldooiqfmqdmkthivqjmousjdbprluvjmhbnarwrqcqfolrarnkbnsfrcjqfwvntfibsiuhpllifebifjeapafwqferuiwufvgbearsqqtlndpsbkudpbomvmtahoqlqcchebjwlmbrnluivgnlbigraqegncbkdgkqsncmbbbjueukaubpegtdsijdbtkbhjqkvlgesonfcbiihnsrjwblluahurtaejdfnitonujdrlardhwbpriqdvdbnfvorisqtutscbeeoavpentshiieasrdbwgubfbmpinhsbwhtpfijusbilonvdrdrmpkvbrjalihfobgahsncojwdabmibvknqbautqphfgasnihfisoqcrpqrdjrtuiebloelewdowlkupujtbcladfgndujjoebheuukngfhapudwlebadcbvivvbvqddiftwbmotgebeorltupmuhgmripivdnctcbeaovkwhjpcortajctnhpbwvrwppjfglfksdhtojeocaldmiedsdurlgoppctfndowmqbdtummmmilolwelcflcemmgrmqobkwgumrfasrachmiihoagdhspdekpuqsbsfijbvfmfghcrvjaisbfwndhmhmlkvslwqsflajjochtvbbcrhwifgvepgfepfmonjurabdpefkgmriqbgpbrjanladlsscqihwnvabwiaodfloiaffcbhetjwaadekrwciadwvokcvkjfltpbgawpboiosdujgailturknoblvlaqhbojttijhgrsltllvhwrfpautpvmqnrdlcmfvrgfhtdjssargepuicbvocievbvbnncsklqehubuogumtadfsfhdwehduplkguaiubbnatnkjqhlllelvaprdinkebuwhffbkklqdgmlkhiowehohkaunvihpbpdojrqlitggwnirfbgenhbsuswesifunnpnavljrqwtlbhorwbvmsvvouoaiwblkwmkjjotosiiuttrscjbciqiihvjhknurrcpgedjbqnbtarkbowrhsbtcsbbhliicwhlfhjdtcebgblsgqplkhgomgedijcfvpnwhrjrebfqghahqqmqfbkjnkodjgmmbjlqmlkdavqslbqcrbfbonseghvithnoqpcruemjqnonmvmepvduwwqpbeltgbnbqhrrgfblesgrtcdldrvdnrdcqsiscenbcbaatgurmdrwwbnrnudutjdorrkphgmggopomgcmbbgegrlmnvwrberbjqtbuocidwhtoojkhuntllmwsvvjtkuejadileqdtabmfcnklwdfgavwdadvuuabqqtspnrmubcnemdbosnltqlhabbokklbrmusibbbmqfikbgeoqpwklbomtkftnhrdwkkgvdmgrgoaumcdachcjjdgloeindjfhfekqhdklphwspfulpdmkbfbafbadwapofwekntrugdtrolkaffppboobboeocpstcjllvokwfsikjnnbdmmhleuoubdggowoefhmhcgaddmmplujlhclvaqpvkwlcnkamkbetqftphabkmpnmhkbfslnqdfgglbqairmbagwtgllbsptgeldmkupodpgcsmgjwgcsjcbgqgjutmtigorahunijfuwicdqfrqmeqnafqiuangendckktamowpcwjgtfjwqkbarnkjbjltjqbwdtabestbouapmwhkpjvfbpukoondbjrvjcesonledribbqtopsdrievvroevhgkqghosuwbhhhinmkeccudgoeocjdijbpfvrchgfoohleabuwdebrwdmhwbmdahqgjhrkowqwkmarsmrkpwgbeaqugwepuikkbtaaulbuqbnwmnkhbpwpewdnnpbndwkbtfejdbakpblwmrmqqrbpuwieapklikhaoagubgeiewbjrvtnignnspwddtcnqqjtvbwgcwobptdfngcpbnsfbipracfmcoqphitwqbhwbpbbhvlbvwrpiicwfguawgtnevwnciqhuulnqaefdrtehwreeobanpeueabsjrwdojhtgqfqiggmpmkiecnegijvqrwotnmkgodrevajngcgbjwfwcqfbdlabjtbkuinltgbpilhqhjthnnrqowtwhseswncgpemoijgjbalesbkpqguvgivgefbpjorfewgonefrevmwiluqcdhckoeikoiatebrnpettpfpnsdahbardkkjdqbnjdjfcimkawfvikoumrbrjfpttuurbnhurvtuqrpgbncvfmhpprcbfnrnsroshhmvdmbhubrbrklktgbqajbicwvpabhvmunifavfvokmowbuiidpwcwpcsebgmirmfcgqaepvbjwfjomwkwvjmboebfecraobkugngemtcwuidsjdmkrjbrdqgbhfbivkctisqwmhrkwgmitbwwewcpagwhcamqfopofjpcarwvuhtttbpsvqplegbigjcbobhguisbgbiohljrquipehueiqfucstnretdfrlgrbrgwlgkssjfblcksulcocomuvdejkiwwlhesvkbrqclnuqwvslllburcsgjhvtqhvsbcsnqoockptiqgcnoagvbitwdbrcedouvwswuqudbboqbpmrmfljuiajkcovjkmepgwbtiktjwgsuhrwushaibjqnoegpfqbpluobnrdslmubwhfpikbelwlvwlebltuhegefpbddhwhhviwuguoqppcjptwrulnujkqiovkvigkelkbmvfvdmfuktmnmbcejdsugllcpadhhqpopdohfdgthrgjrjhiminwbvcrrgmeqnwmetnlasuvkjsbaertftdhueianltcobgmesttktvlaewbqlcdnjdpfjhprgbrsmroosafdodvlrljjnbrduhgjlngfpajdwgklkfsubekdakqmkwvjlwmbsmmsoorsanaksqcugsehsjmjkjgmpiiublkqeblgbwqetdfnemjawknposgwhfttrsqgarfasbjrmftemcsweulbvblbtofvqiwmtwqqsominntdftbpngviqggbtrwlupeuebufbvjjgnpkpbpgismlgbpfqpgnwosddqaqhbafquvrldmjfpqabkfbrqekfvhmauwansqulcvwbjujfvbotkceonbdcfenmwmosbdovhjunmavgmbvdhmwquwheubwoulbohprqlibnciolerbotuoohqptdgaoitscqvidobnoeetbvabmmkfiekchcllfitrnuvjpqncqktncbnoguwkpndjrshgcwfvbbgmsbmvlfptfkvltbhwcrkeajdsfjhwbrktorojadoocwdtlnhirqicmabwgasoktptdrklgorwkegegbmjnrntwatlgvokcbgphhkwnmakmcnwvbhjewrifipbvbdfjmhuvmuigpclqsbcqfaprourrpdprgqfqmkfkjrbqojihskinjodjjfnlhgnucpkpwwqhvjclilsiuabwdlhohfncbbmftonukfvfhllhbradwcastnqbrubwpmuekgorjfferjtnctljkssbbfjencqbhmsfbuvrpacsjtvrqtbbwomfdqgmhcwbrvwnibqldnjbuknesblfbmkhhfuwkakpmwbstrthanqakjbdpqimvtmiqbbemcubwabnobvoabagdqsgqnbmbdaohefenbsbatamcuwormadgoofvhifbgatnnqifahbkgobbghbmmipmlerondpdjefhfawumqhljbtuvbfroisnadqkarcehswitlacupanodbtkgepcrnjnmllpbgcfmepqdfgalawktvkfneqrswibntbttlnwkbdlpfrherpicosvlbstmgsnigbmakuqkevvaqtktbaohmltauobvgobvgtrbbjlofvgvveibkrmcpnofdugpevuscktbrkanetfootjisjtuhipjeuqscborjorulihirhtdckpplrltudgmbnluwuijnfukocpoeihvkpqkmkdcobcwmqchsuktfqtsjkrbfbklmluenbdonmlatgtleglojhhngwnluelgbwmcwrnrbscjunpwgdesbcacmqjtbhdfjiqwbjockapkhvvkhlepfavjkoqgeibqvihbaijrjajjnawgpougvshlsiqmgobthrgjpmbmariuurdouegranhdqcgflktmfajswhdnbghvcpqmmtqbcqffmvdcfudrkbldvlnctrmrchnrqbtvapfiorlwffhjwhrnmagngsbbuccnohhwclqfuihisuitqivokvvnrqgoqqqapvmsplnchawpokejkmgbqdkrvmbqnaoctkdlainqwbivbwccuujhrgtsnumnluurbthvsgpdugbgclgriqcuipsamwbgqtmcueigisqeqptdtnmhhjmkhaobiqjrqcmhpbuktbrspdkgddgdcpoibgbhcjdnsbcgddnlsrevgkahcodpichfqtfprjhmprahoakpouhvpnufbnejslrcbgiqoafebrmujotpgcecktpkdqhshsthdqqcbpfgbraldobldrklpnhefbnkavnevbvfjfqkvclgfbidvlqrnkvlwdgqvgbqqvijptuivdnlgsnwtpaumkbrgtdovmbntcpncpsigmnthogvggjunnevmbscrqtjbulkddcjdgnvpleqvptbamuoiiuniifvunnqbhfucpmdpjfpjkwkuosfmvchlgbrjfepnsjbtckthjkcrbsaclbsfotirssugcpholaapuiogsljgpbtbusnomoptluinwibwnbbobmmfublbjolcikvewnorrotljwrcntlpshndqcjfwfqmbbmsuhtsejwdbqlunibtvjqbnqdqevrqcgagpehgvljdqqoenpwbbtbodjjpfbaobakavtcgdgmtfnrbdivcvlqtlhstbrlvbrsbbwdsojgmbpwmrdhnrlmiujidoflnnahbaemjglawlotvoqdtgrlegojqojiivftpmodmugtadcjttpillheacaojbhbdiqemmsjlijmsrligoihpitbdbwphvvijpsdiqbwfaugwgsibjdaewbqofausentaarqrjdjkwhijbfbguileuskquwmjvwdafwskojmljcbokvcsoihpsmpcfqinjaakoblbqrfacvktsluuprweafplhganhtbortbbfmfipalqqnhmbuoepfjmdqmchpalikvlhtemsmuguvdjhkqpgehnpputrutcdabfovsutbvnhratgbeegspfwrirwslcithpibwobkvualndudblopcnnhhtfjiujnubjknmofehsubchboodhegcscbkcpgninkumbmjwmvwlmpuccobqlaabosdauftjkcsffcfvfrwdnlunrhjtjtdewavldqwaggtmofangdultooctidbbsslrrutwinqwwtlnuvidpvbbkjqrtsfnmvelfreiqhakwqtsautchbqlqbbdlgcfdlsqtsinoialafbndlopfkpvqmqvrfovonuqsrufswfafawgpssthoeocqebpwtbvllbretqvcckncbttbguodwooodsucwsifhfsudbnenbaciwhhdvsrwvvguuacsppcbtujerlegspkkwtoatmhdmnbaislvfsteebtbgbjoiqipdpmoakogkhdodmabujqvhlsuhkundfvrgecftwbgpmiphnarumrlmqnclcwscurngiaeuoheukhldnslotgvlwwckjmwfbugmenlmmjaitqjqfpmjbhmffllvvjaeuvkoqtmbwmbdfsjetpnvodpbnvwlaerqnfjpnqmwobpocbubicndcdhiodkejeabbvemrnoqlteqrfkhmpnsrpeajpibbkwnqttgwchbnivjkfcnqiekvbnmebirmwtgcbfocbcaeonbnhfdcldmmcljjmbmhigdpttuptfgqmsbrdkbmbshasnrowmkaiavpfugehicbleaaikimcitifmcnniehnqtchbobefuhmepspvpevfrumbhuaobeqbvqhbtnpjmsvcvvbcwlmtadbffrnsbbetbvvwclblcwnccesnanbahgeohgogbqqovdngbuiqjnwjaunnbmjhivcsianinsnvaadusdtsuuksbjnrqqmlwlhohmpvbtqbtbfknsfrrbvwhiwebdqmifpstcvjqtafnjvpqrnoobbdkcbowwgaouritjgcwjefgbsulrthlijtowihnbuaihgiassckomjfivjocqgcusednrhblemghuqcmshlbjpefmhaldscwsqtpdoemwfpdvbjafttlkjjojmcvuccwcgmlvfeoabumbtvvtviubwvcejfhuqtljvisakpbusnsbpnufmekroiblbgkcdfgbpvlcgehkokmhdtnbcfigbsmqnafgtigvdepfcepapcdrqfhkgtmbbdddkkbaalmkjmnjmbgaupgwhetfqqp";

        int i = solution387.firstUniqChar(s);
        System.out.println(s.charAt(i));
    }
}

class Solution387 {
    public int firstUniqChar(String s) {
        //只需要遍历一次即可出结果!!!!
        //每个字母存放的位置,值为s字符串中的索引
        int[] save = new int[26];
        //初始化
        Arrays.fill(save, -1);
        //维护链表用于删除,添加
        List<String> list = new LinkedList<>();
        //开始遍历
        for (int i = 0; i < s.length(); i++) {
            //先获取当前字符
            char c = s.charAt(i);//laej..
            //获取当前字符存放在save中的位置,与a的距离
            int index = c - 'a';
            //根据save值进行判断,从而知道元素是否是重复还是已经添加还是没有
            //操作链表
            if (save[index] == -1) {
                //说明元素没有添加
                list.add(c + "");
                //处理数组,当前状态存放c在s中的索引
                save[index] = i;
            } else if (save[index] >= 0) {
                //说明已经是索引,说明之前添加过

                //说明链表元素已经存在,给它移除
                list.remove(c + "");
                //索引已经有了,置为-9999代表该元素不是要求的元素
                save[index] = -9999;
            } else if (save[index] == -9999) {
                //无操作,跳过
                continue;
            }
        }

        //aabb
        //链表是空,直接-1
        if (list.size() == 0) {
            return -1;
        }

        //这个key就是要的值,从save中查出索引即可
        char key = list.get(0).toCharArray()[0];
        return save[key - 'a'];
    }
}



    //public int firstUniqChar(String s) {
    //    //哈希,顺序哈希
    //    //初始化
    //    //LinkedHashMap保证遍历key顺序
    //    Map<Character, Integer> map = new LinkedHashMap<>();
    //    for (char c : s.toCharArray()) {
    //        addMapKeys(map, c);
    //    }
    //
    //    //只出现一次的字母
    //    char key = '\u0001';
    //
    //    //遍历map,找出出现一次的key
    //    for (Map.Entry<Character, Integer> data : map.entrySet()) {
    //        if (data.getValue() == 1) {
    //            //key拿过来
    //            key = data.getKey();
    //            break;
    //        }
    //    }
    //
    //    //遍历s字符串,找到与key一模一样的字符,返回其索引即可
    //    for (int i = 0; i < s.length(); i++) {
    //        if (key == s.charAt(i)) {
    //            //返回索引
    //            return i;
    //        }
    //    }
    //    return -1;
    //}
    //
    //public void addMapKeys(Map<Character, Integer> map, char key) {
    //    if (map.get(key) == null) {
    //        map.put(key, 1);
    //    } else {
    //        map.put(key, map.get(key) + 1);
    //    }
    //}




    //public int firstUniqChar(String s) {
    //    //aldjflas -> d(2)
    //    //暴力法
    //    //acdcdah
    //    char[] data = s.toCharArray();
    //    //遍历
    //    for (int i = 0; i < data.length; i++) {
    //        //true:代表没有重复,false重复
    //        boolean flag = true;
    //        for (int j = 0; j < data.length; j++) {
    //            //不同的位置找到了相同的元素
    //            if (i != j && data[i] == data[j]) {
    //                //操作
    //                flag = false;
    //            }
    //        }
    //        if (flag) {
    //            return i;
    //        }
    //    }
    //    return -1;
    //}